﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using WBGModel;
using System.Data;

namespace WBGDal
{
    public class DalModelo : ICRUD
    {
        public List<ModelModelo> Listar()
        {
            return Listar("");
        }

        public List<ModelModelo> Listar(string filtro)
        {
            String cmd = "SELECT VeiculoModelo.*, Marca=Marca.nome FROM VeiculoModelo, Marca WHERE VeiculoModelo.idMarca=Marca.idMarca" + (filtro.CompareTo("") == 0 ? "" : " AND " + filtro);
            return ConvertToList(UtilBanco.ExecComRetorno(cmd));
        }

        private List<ModelModelo> ConvertToList(DataTable resultSet)
        {
            List<ModelModelo> lst = new List<ModelModelo>();
            for (int i = 0; i < resultSet.Rows.Count; i++)
            {
                DataRow dr = resultSet.Rows[i];
                ModelModelo modelo = new ModelModelo();
                modelo.idModelo = Convert.ToInt32(dr["idVeiculoModelo"]);
                modelo.nome = dr["nome"].ToString();
                modelo.idMarca = Convert.ToInt32(dr["idMarca"]);
                modelo.Marca = dr["Marca"].ToString();
                lst.Add(modelo);
            }
            return lst;
        }

        public void Inserir(ModelModelo obj)
        {
            String cmd = String.Format("INSERT INTO VeiculoModelo (nome,idMarca) VALUES ('{0}',{1})", obj.nome, obj.idMarca);
            UtilBanco.ExecSemRetorno(cmd);
        }

        public void Alterar(ModelModelo obj)
        {
            String cmd = String.Format("UPDATE VeiculoModelo SET nome='{0}', idMarca='{1}' WHERE idVeiculoModelo='{2}'", obj.nome, obj.idMarca, obj.idModelo);
            UtilBanco.ExecSemRetorno(cmd);
        }

        public void Deletar(int id)
        {
            String cmd = String.Format("DELETE FROM VeiculoModelo WHERE idVeiculoModelo={0}", id);
            UtilBanco.ExecSemRetorno(cmd);
        }
    }
}
